1. Field
The present embodiments relate to techniques for comparing documents.
2. Related Art
During software development, changes to computer-software instructions or source code by one software developer are sometimes reviewed by other software developers. This review process may be facilitated by a differencing tool (which is sometimes referred to as a ‘diff’ tool) that can determine and display the differences between two versions of a file, such as an original version and an updated version of the file. For example, if a software developer changes one line in a file that includes 10,000 lines, the reviewer may only need to examine that line for changes, rather than re-reading the entire file (the bulk of which was previously reviewed).
However, such differencing tools often do not detect a region that has been moved from one location in a file to another. Instead, these existing tools may indicate that the region has been ‘removed’ from the original version of the file and ‘inserted’ into the updated version of the file, when, in fact, the content of this region is present in the original version of the file and is unchanged. This can be problematic for reviewers, especially when the moved regions are large, for example, if the reviewer would like to review any changes as quickly as possible and/or would prefer not to examine different regions manually to determine the differences (if any) between them.